<?php
	require_once '../ServingPeriod.php';
	require_once '../StopServingIndicator.php';
	require_once '../ContainerType.php';
	require_once '../ThirdPartyTracking.php';
	require_once '../ImpressionCap.php';
	require_once '../Patch.php';
	//
	class Container
	{
		//Setup.
			//Details.
		private $uId;
		private $sStat;
		private $sName;
		private $sMediaAgencyName;
		private $sCampaignName;
		private $sPubName;
		private $package;
		private $iBookedImps;
		private $servingPeriod;
		private $sServingIndicator;
		private $sComment;
		private $iType;
		//Creative.
		private $ads;
		//Targeting.
		private $impCap;
		//Tags.
		private $tptSite;
		private $tptAgency;
		private $patch;
		//
		public function __construct()
		{
			//Setup.
				//Details.
			$this->setId(0);
			$this->setStatus('');
			$this->setName('');
			$this->setMediaAgencyName('');
			$this->setCampaignName('');
			$this->setPublisherName('');
			$this->setPackage(0);
			$this->setBookedImpressions(0);
			$this->setServingPeriod(new ServingPeriod());
			$this->setServingIndicator(StopServingIndicator::KEEP_SERVING);
			$this->setComment('');
			$this->setType(ContainerType::IN);
			//Ads.
			$this->setAds(array());
			//Targeting.
			$this->setImpressionCap(new ImpressionCap());
			//Tags.
			$this->setSiteThirdPartyTracking(new ThirdPartyTracking());
			$this->setAgencyThirdPartyTracking(new ThirdPartyTracking());
			$this->setPatch(new Patch());
		}
		public function setPatch($value){$this->patch = $value;}
		public function getPatch(){return $this->patch;}
		//
		public function setAgencyThirdPartyTracking($value)
		{
			$this->tptAgency = $value;
		}
		public function getAgencyThirdPartyTracking()
		{
			return $this->tptAgency;
		}
		//
		public function setSiteThirdPartyTracking($value)
		{
			$this->tptSite = $value;
		}
		public function getSiteThirdPartyTracking()
		{
			return $this->tptSite;
		}
		//
		public function setAds($value){$this->ads = $value;}
		public function getAds(){return array_slice($this->ads, 0);}
		
		public function setId($value){$this->uId = $value;}
		public function getId(){return $this->uId;}
		//
		public function setStatus($value){$this->sStat = $value;}
		public function getStatus(){return $this->sStat;}
		//
		public function setName($value){$this->sName = $value;}
		public function getName(){return $this->getName();}
		//
		public function setMediaAgencyName($value)
		{
			$this->sMediaAgencyName = $value;
		}
		public function getMediaAgencyName()
		{
			return $this->sMediaAgencyName;
		}
		//
		public function setCampaignName($value)
		{
			$this->sCampaignName = $value;
		}
		public function getCampaignName()
		{
			return $this->sCampaignName;
		}
		//
		public function setServingPeriod($value)
		{
			$this->servingPeriod = $value;
		}
		public function getServingPeriod()
		{
			return $this->servingPeriod;
		}
		//
		public function setBookedImpressions($value)
		{
			$this->iBookedImps = $value;
		}
		public function getBookedImpressions()
		{
			return $this->iBookedImps;
		}
		//
		public function setServingIndicator($value)
		{
			$this->sServingIndicator = $value;
		}
		public function getServingIndicator()
		{
			return $this->sServingIndicator;
		}
		//
		public function setComment($value)
		{
			$this->sComment = $value;
		}
		public function getComment()
		{
			return $this->sComment;
		}
	}
?>